/**
 * 用户上划页面 滚动条触底 开始加载下一页数据
 *    1 找到滚动条触底时间
 *    2 判断还有没有下一页数据
 *        1获取总页数     总页数 = Math.ceil(总页数(total) / 页容量(pagesize))
 *        2获取当前页码   pagenum
 *        3判断当前页码是否大于等于总页数
 *    3 没有下一页数据 就弹出提示
 *    4 有下一页数据 就加载
 *        1当前页码++
 *        2重新发送请求
 *        3数据请求回来  要对data中的数组 拼接(不是替换)
 * 下拉刷新页面
 *    1 触发下拉刷新事件(需要在页面json中配置 enablePullDownRefresh)
 *    2 重置数据数组 
 *    3 重置页码设置为1
 *    4 重新发送请求
 *    5 数据请求完成 需要手动关闭等待效果
 */
import {request} from "../../request/index.js"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs:[{
      id:0,
      value:"综合",
      isActive:true
    },
    {
      id:1,
      value:"销量",
      isActive:false
    },
    {
      id:2,
      value:"价格",
      isActive:false
    } 
    ],
    goodsList:[]
  },
  //接口要的参数
  QueryParams:{
    query:"",
    cid:"",
    pagenum:1,    //页码
    pagesize:10   //页容量
  },
  //总页数
  totalPages:1,

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.QueryParams.cid = options.cid || ""
    this.QueryParams.query = options.query || ""
    this.getGoodsList()
  },
  //获取商品列表数据
  async getGoodsList(){
    const res = await request({url:"/goods/search",data:this.QueryParams})
    //获取总条数
    const total = res.total
    //计算总页数
    this.totalPages = Math.ceil(total/this.QueryParams.pagesize)
    this.setData({
    //拼接了数组
      goodsList:[...this.data.goodsList,...res.goods]
    })

    //关闭下拉刷新的窗口(没调用刷新窗口 关闭也不报错)
    wx.stopPullDownRefresh()
  },

  //标题点击事件 从子租金传递过来的
  handleTbsItemChange(e){
    //1. 获取被点击标题的索引
    const {index} = e.detail
    //2. 修改源数组
    let {tabs} = this.data
    tabs.forEach((v,i)=>{i===index?v.isActive=true:v.isActive=false}) 
    //3. 赋值到data中
    this.setData({
      tabs
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
      //重置数组
      this.setData({
        goodsList:[]
      })
      //重置页码
      this.QueryParams.pagenum=1
      //发送请求
      this.getGoodsList()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
      // 判断还有没有下一页
      if(this.QueryParams.pagenum>=this.totalPages){
          wx.showToast({title: '没有更多商品了'});
      }else{
        this.QueryParams.pagenum++;
        this.getGoodsList()
      }
      
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})